@Article{hl07mechanizing,
  author = 	 {Robert Harper and Daniel R. Licata},
  title = 	 {Mechanizing Metatheory in a Logical Framework},
  journal = 	 {Journal of Functional Programming},
  year = 	 {2007},
  note = 	 {To appear. Available from \url{http://www.cs.cmu.edu/~drl/}},
}

@Book{L:BC04,
  author       = "Bertot, Yves and Cast\'eran, Pierre",
  title        = "Interactive Theorem Proving and Program Development. Coq'Art: The Calculus of Inductive Constructions",
  series       = "Texts in Theoretical Computer Science",
  year         = "2004",
  publisher    = "Springer Verlag",
  url          = "http://www.labri.fr/publications/l3a/2004/BC04"
}

@Misc{girard:thesis,
  author = 	 {J.Y. Girard},
  title = 	 {Interpretation fonctionelle et elimination des coupures
                  de l'arithmetique d'ordre superieur},
  howpublished = {These d'Etat, Paris VII},
  year =	 1972
}

@TechReport{emir07:oopatmatch,
   abstract    = {Data in object-oriented programming is organized in a
                 hierarchy of classes. The problem of *object-oriented
                 pattern matching* is how to explore this hierarchy from
                 the outside. This usually involves classifying objects by
                 their run-time type, accessing their members, or
                 determining some other characteristic of a group of
                 objects. In this paper we compare six different pattern
                 matching techniques: object-oriented decomposition,
                 visitors, type-tests/type-casts, typecase, case classes,
                 and extractors. The techniques are compared on nine
                 criteria related to conciseness, maintainability and
                 performance. The paper introduces case classes and
                 extractors as two new pattern-matching methods and shows
                 that their combination works well for all of the
                 established criteria.},
   author      = {Emir, Burak and Odersky, Martin and Williams, John},
   details     = {http://infoscience.epfl.ch/search.py?recid=98468},
   documenturl = {http://infoscience.epfl.ch/getfile.py?recid=98468&mode=best},
   keywords    = {object-oriented programming; pattern matching; language
                 design; type systems; generalized algebraic data types},
   title       = {Matching {O}bjects with {P}atterns},
   unit        = {LAMP},
   note        = {To appear in the proceedings of ECOOP 2007.},
   year        = 2006
}

@TechReport{LAMP-REPORT-2006-001,
   abstract    = {Scala fuses object-oriented and functional programming
                 in a statically typed programming language. It is aimed
                 at the construction of components and component systems.
                 This paper gives an overview of the Scala language for
                 readers who are familar with programming methods and
                 programming language design.},
   author      = {Odersky, Martin and Altherr, Philippe and Cremet,
                 Vincent and Dragos, Iulian and Dubochet, Gilles and Emir,
                 Burak and McDirmid, Sean and Micheloud, St\'ephane and
                 Mihaylov, Nikolay and Schinz, Michel and Spoon, Lex and
                 Stenman, Erik and Zenger, Matthias},
   details     = {http://infoscience.epfl.ch/search.py?recid=85634},
   documenturl = {http://infoscience.epfl.ch/getfile.py?recid=85634&mode=best},
   keywords    = {components; programming language design; type systems;
                 web services; functional programming; object-oriented
                 programming; XML processing},
   title       = {An {O}verview of the {S}cala {P}rogramming {L}anguage (2. Edition)},
   unit        = {LAMP},
   year        = 2006
}

@TechReport{Henglein:SubtypingProperties:96,
  AUTHOR      = {Henglein, Fritz},
  YEAR        = {1996},
  TITLE       = {Syntactic Properties of Polymorphic Subtyping},
  INSTITUTION = {DIKU, University of Copenhagen},
  address     = {Universitetsparken 1, DK-2100 Copenhagen, Denmark},
  type        = {TOPPS Technical Report (D-report series)},
  number      = {D-293},
  month       = {May},
  keywords    = {Polymorphism, subtyping, type inference, syntactic
properties, principal type, Algorithm W, simplifications, qualified
type schemes, instance relation},
  summary     = {In this paper we study polymorphic subtyping, where the subtyping
theory is \emph{not} required to be structural.  We observe that type
schemes with subtyping qualifications are strictly necessary in order
to obtain principal typing.  We identify a new instance relation on
typing judgements, the \emph{halbstark} relation.  It is a hybrid,
lying in strength between Mitchell's original instance relation and
Fuh and Mishra's lazy instance relation.  We present a sound and
complete type inference algorithm in the style of Milner's Algorithm
W.  The significance of the halbstark relation emerges from the fact that
the algorithm is \emph{generic} in that it admits replacing 
typing judgements by \emph{any} halbstark-equivalent judgements at any
point.  This provides a generalized correctness argument for Algorithm W
independent of any particular constraint simplification strategy
chosen.  
Finally, we show that polymorphic typing judgements are
preserved under let-unfolding, let-folding, and
$\eta$-reduction, but not in general under $\beta$-reduction.  
The latter holds, though, if the subtyping discipline has the
\emph{decomposition} property, which says that two function types are
in a subtype relation only if their domain and range types are
in the appropriate contra-/covariant subtype relation.
},
  supersedes  = {},
  SEMNO       = {D-293},
  PUF         = {Tekniske rapport},
  ID          = {Tek}
}

@misc{Sheard:playing,
  author = "Tim Sheard",
  title = "Playing with Type Systems: Automated assistance in the design of
    programming langauges",
  note = {\url{http://web.cecs.pdx.edu/~sheard/papers/PlayingWithTypes2.ps}},
  year = 2006,
}

@misc{kidd07:setmonad,
  author = "Eric Kidd",
  title = "How to make Data.Set a monad",
  year = 2007,
  note = {\url{http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros}}
}

@misc{jones94:setmonad,
  author = "Mark P. Jones",
  title = {constructor classes \& "set" monad?},
  year = 1994,
  note = {\url{http://groups.google.com/group/comp.lang.functional/msg/e10290b2511c65f0}}
}



@inproceedings{citeulike:975433,
	author = {Tim Sheard},
	booktitle = {PLPV},
	keywords = {dependent-types provers},
	priority = {0},
	title = {Type-level Computation Using Narrowing in {$\Omega$}mega.},
	url = {http://web.cecs.pdx.edu/~sheard/papers/sheardPLPV.ps},
	year = {2006}
}

@misc{ott,
  author = "Peter Sewell and Francesco Zappa Nardelli and Scott Owens and Gilles Peskine and Thomas Ridge and Susmit Sarkar and Rok Strni\u{s}a",
  title = "Ott: Effective Tool Support for the Working Semanticist",
  note = {Draft from \url{http://www.cl.cam.ac.uk/~pes20/ott/paper.pdf}},
  year = 2007,
}

@INPROCEEDINGS{moors06:oodgp,
	AUTHOR = {Adriaan Moors and Frank Piessens and Wouter Joosen},
	TITLE = {An Object-Oriented Approach to Datatype-Generic Programming},
	YEAR = {2006},
	BOOKTITLE = {Proceedings of the Workshop on Generic Programming}	
}

@INPROCEEDINGS{gibbons06:hodgp,
	AUTHOR = {Jeremy Gibbons},
	TITLE = {Design Patterns as Higher-Order Datatype-Generic Programs},
	YEAR = {2006},
	BOOKTITLE = {Proceedings of the Workshop on Generic Programming}	
}


@INPROCEEDINGS{ barnett-spec,
  author = "Mike Barnett and K. Rustan M. Leino and Wolfram Schulte",
  title = "The {S}pec# Programming System: An Overview",
  year = {2004},
  booktitle = {Prooceedings},
  url = "citeseer.ist.psu.edu/649115.html" }


@inproceedings{Barnett2005:specsharp,
  title = {The Spec# Programming System: An Overview},
  author = {Mike Barnett and K. Rustan M. Leino and Wolfram Schulte},
  booktitle = {Construction and Analysis of Safe, Secure, and Interoperable Smart Devices},
  publisher = {Springer Berlin / Heidelberg},
  issn = {0302-9743 (Print) 1611-3349 (Online)},
  url = {http://springerlink.com/content/0m789xre652nuv06/},
  abstract = {The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software. This paper describes the goals and architecture of the Spec# programming system, consisting of the object-oriented Spec# programming language, the Spec# compiler, and the Boogie static program verifier. The language includes constructs for writing specifications that capture programmer intentions about how methods and data are to be used, the compiler emits run-time checks to enforce these specifications, and the verifier can check the consistency between a program and its specifications.},
  pages = {49--69},
  doi = {10.1007/b105030},
  year = {2005},
  month = {January},
}

% TODO: urls don't appear in references
@inproceedings{Clifton02:observers,
  author    = {C. Clifton and G. T. Leavens},
  title     = {Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning},
  booktitle = {FOAL 2002 Proceedings: Foundations of Aspect-Oriented Languages Workshop at AOSD 2002},
  year      = {2002},
  pages     = {33--44},
}

%% eerste termijn:



% TODO: urls don't appear in references
@inproceedings{DBLP:conf/pldi/Boehm05,
  author    = {Hans-Juergen Boehm},
  title     = {Threads cannot be implemented as a library.},
  booktitle = {PLDI},
  year      = {2005},
  pages     = {261-268},
  ee        = {http://doi.acm.org/10.1145/1065042},
  crossref  = {DBLP:conf/pldi/2005},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{DBLP:conf/pldi/2005,
  editor    = {Vivek Sarkar and
               Mary W. Hall},
  title     = {Proceedings of the ACM SIGPLAN 2005 Conference on Programming
               Language Design and Implementation, Chicago, IL, USA, June
               12-15, 2005},
  booktitle = {PLDI},
  publisher = {ACM},
  year      = {2005},
  isbn      = {1-59593-056-6},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{bierman05:essence,
    author = {Gavin Bierman and Erik Meijer and Wolfram Schulte},
    title = {The essence of data access in {C$\omega$}:
    {T}he power is in the dot!},
    booktitle = {ECOOP},
    year      = {2005},
    url = {http://research.microsoft.com/users/schulte/Papers/ TheEssenceOfDataAccessinCw(submitted).pdf}
}

%proceedings{DBLP:conf/ecoop/2005,
%TODO
%}

@inproceedings{cardelli05:transitions,
 author = {Luca Cardelli},
 title = {Transitions in Programming Models: 2},
 booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering},
 year = {2005},
 isbn = {1-59593-963-2},
 pages = {2},
 location = {St. Louis, MO, USA},
 doi = {http://doi.acm.org/10.1145/1062455.1062457},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 url =  {http://www.cs.wustl.edu/icse05/Home/CardelliKeynote.pdf}
}

@inproceedings{tatsubori99:openjava,
    author = "Michiaki Tatsubori and Shigeru Chiba and Kozo Itano and Marc-Olivier Killijian",
    title = "{OpenJava}: A Class-Based Macro System for {J}ava",
    booktitle = "{OORaSE}",
    pages = "117-133",
    year = "1999",
    url = "http://citeseer.ist.psu.edu/tatsubori00openjava.html" }

@inproceedings{bachrach01:JSE,
 author = {Jonathan Bachrach and Keith Playford},
 title = {The {J}ava syntactic extender (JSE)},
 booktitle = {OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications},
 year = {2001},
 isbn = {1-58113-335-9},
 pages = {31--42},
 location = {Tampa Bay, FL, USA},
 doi = {http://doi.acm.org/10.1145/504282.504285},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@InProceedings{stuckey02:overloading,
  author =   {P.~J.~Stuckey and M.~Sulzmann },
  title =    {A Theory of Overloading},
  booktitle =    "Proc.\ of ICFP'02",
  pages =    {167--178},
  year =     {2002},
  publisher = {ACM Press},
}


@InProceedings{chin05:semantic,
  author =   {Brian Chin and Shane Markstrum and Todd Millstein},
  title =    {Semantic Type Qualifiers},
  crossref =     {PLDI05},
  url =       {http://www.cs.ucla.edu/~todd/research/pldi05.html}
}



@Proceedings{PLDI05,
  title =    {Proceedings of the ACM SIGPLAN 2005 Conference on
                  Programming Language Design and Implementation},
  booktitle =    {Proceedings of the ACM SIGPLAN 2005 Conference on
                  Programming Language Design and Implementation},
  year =     2005,
  address =  {Chicago, Illinois},
  month =    jun # { 12--15},
  key =      {ACM},
  c-organization ={ACM},
}

@InProceedings{odersky-et-al:ecoop03,
  author =       {Martin Odersky and Vincent Cremet and Christine R\"ockl and Matthias Zenger},
  title =        {A Nominal Theory of Objects with Dependent Types},
  booktitle =    {Proc. ECOOP'03},
  year =         2003,
  month =        jul,
  series =       {Springer LNCS}
}

@INPROCEEDINGS{IgarashiPierceWadler99,
  AUTHOR = {Atsushi Igarashi and Benjamin Pierce and Philip Wadler},
  TITLE = {Featherweight {J}ava: A Minimal Core Calculus for {J}ava
                  and {GJ}},
  MONTH = OCT,
  BOOKTITLE = {{ACM} {SIGPLAN} {C}onference on {O}bject {O}riented {P}rogramming:
                    {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})},
  YEAR = {1999},
  NOTE = {Full version in ACM Transactions on Programming
                  Languages and Systems (TOPLAS), 23(3), May 2001},
  PLCLUB = {Yes},
  BCP = {Yes},
  KEYS = {oop},
  CONF = {http://www.cis.upenn.edu/~bcpierce/papers/fj-oopsla.ps},
  FULL = {http://www.cis.upenn.edu/~bcpierce/papers/fj-toplas.pdf}
}


@inproceedings{ bracha04:pluggable,
    author = "Gilad Bracha",
    title = "Pluggable Type Systems",
    booktitle = "{OOPSLA} Workshop on Revival of Dynamic Languages",
    year = "2004",
    url = "http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Bracha.pdf" }

@inproceedings{ meijer:static,
    author = "Erik Meijer and Peter Drayton",
    title = "Static Typing Where Possible, Dynamic Typing When Needed: The End of the Cold War Between Programming Languages",
    booktitle = "{OOPSLA} Workshop on Revival of Dynamic Languages",
    year = "2004",
    url = "http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Meijer.pdf" }

@inproceedings{bracha04:mirrors,
 author = {Gilad Bracha and David Ungar},
 title = {Mirrors: design principles for meta-level facilities of object-oriented programming languages},
 booktitle = {Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications},
 year = {2004},
 isbn = {1-58113-831-9},
 pages = {331--344},
 location = {Vancouver, BC, Canada},
 doi = {http://doi.acm.org/10.1145/1028976.1029004},
 publisher = {ACM Press},
 }

@Book{harper05:pltap,
    author = {Robert Harper},
    title = {Programming Languages: Theory and Practice},
    publisher = {},
    year = {2005},
    note = {Draft},
}

@inproceedings{ kniesel98:typesafe,
    author = "Gunter Kniesel",
    title = "Type-Safe Delegation for Dynamic Component Adaptation",
    booktitle = "{ECOOP} Workshops",
    pages = "136-137",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/490492.html" }

@PhdThesis{kolbly02:extensible,
author = "Donovan Michael Kolbly",
title = "Extensible Language Implementation",
url = "http://citeseer.ist.psu.edu/kolbly02extensible.html" }
school = {The University of Texas at Austin},
year = {2002},
}

@inproceedings{flatt02:composable,
 author = {Matthew Flatt},
 title = {Composable and compilable macros: you want it when?},
 booktitle = {ICFP '02: Proceedings of the seventh ACM SIGPLAN international conference on Functional programming},
 year = {2002},
 isbn = {1-58113-487-8},
 pages = {72--83},
 location = {Pittsburgh, PA, USA},
 doi = {http://doi.acm.org/10.1145/581478.581486},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@techreport{moggie98:idealized,
 author = {Eugenio Moggi and Walid Taha and Zine E Benaissa and Tim Sheard},
 title = {An Idealized MetaML: Simpler, and More Expressive},
 year = {1998},
 publisher = {Oregon Graduate Institute School of Science \& Engineering},
 }


@inproceedings{taha03:snd,
 author = {Walid Taha and Patricia Johann},
 title = {Staged notational definitions},
 booktitle = {GPCE '03: Proceedings of the second international conference on Generative programming and component engineering},
 year = {2003},
 isbn = {3-540-20102-5},
 pages = {97--116},
 location = {Erfurt, Germany},
 publisher = {Springer-Verlag New York, Inc.},
 address = {New York, NY, USA},
 }


@inproceedings{DBLP:conf/gpce/NeverovR04,
  author    = {Gregory Neverov and
               Paul Roe},
  title     = {Metaphor: A Multi-stage, Object-Oriented Programming Language.},
  booktitle = {GPCE},
  year      = {2004},
  pages     = {168--185},
  ee        = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=168},
  crossref  = {DBLP:conf/gpce/2004},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{DBLP:conf/gpce/2004,
  editor    = {Gabor Karsai and
               Eelco Visser},
  title     = {Generative Programming and Component Engineering: Third
               International Conference, GPCE 2004, Vancouver, Canada,
               October 24-28, 2004. Proceedings},
  booktitle = {GPCE},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {3286},
  year      = {2004},
  isbn      = {3-540-23580-9},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{neverov05:fullyreflective,
 author = {Gregory Neverov and Paul Roe},
 title = {Towards a fully-reflective meta-programming language},
 booktitle = {CRPIT '38: Proceedings of the Twenty-eighth Australasian conference on Computer Science},
 year = {2005},
 isbn = {1-920-68220-1},
 pages = {151--158},
 location = {Newcastle, Australia},
 publisher = {Australian Computer Society, Inc.},
 address = {Darlinghurst, Australia, Australia},
 }

@unpublished{bloch04:jsr175,
  author = {Joshua Bloch},
  title = {{JSR} 175: A metadata facility for the {J}ava programming language},
  url = {http://jcp.org/en/jsr/detail?id=175},
}

@unpublished{odersky05:introscala,
title = {An Introduction to {S}cala},
author = {Martin Odersky and Philippe Altherr and Vincent Cremet and Burak Emir and St√©phane and Micheloud Nikolay Mihaylov and Michel Schinz and Erik Stenman and Matthias Zenger},
month = {August},
year = {2005},
url = {http://scala.epfl.ch/docu/files/ScalaIntro.pdf},
}

@inproceedings{ganz01:macros,
 author = {Steven E. Ganz and Amr Sabry and Walid Taha},
 title = {Macros as multi-stage computations: type-safe, generative, binding macros in MacroML},
 booktitle = {ICFP '01: Proceedings of the sixth ACM SIGPLAN international conference on Functional programming},
 year = {2001},
 isbn = {1-58113-415-0},
 pages = {74--85},
 location = {Florence, Italy},
 doi = {http://doi.acm.org/10.1145/507635.507646},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

 @inproceedings{clifton00:multijava,
 author = {Curtis Clifton and Gary T. Leavens and Craig Chambers and Todd Millstein},
 title = {MultiJava: modular open classes and symmetric multiple dispatch for {J}ava},
 booktitle = {OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications},
 year = {2000},
 isbn = {1-58113-200-X},
 pages = {130--145},
 location = {Minneapolis, Minnesota, United States},
 doi = {http://doi.acm.org/10.1145/353171.353181},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@inproceedings{aldrich05:openmodules,
author = {Jonathan Aldrich},
title = {Open Modules: Modular Reasoning about Advice},
booktitle = {ECOOP},
year      = {2005},
url = {http://www-2.cs.cmu.edu/~aldrich/papers/open-modules.pdf}
}

@inproceedings{kojarski05:pluggable,
author = {Sergei Kojarski and David Lorenz},
title = {Pluggable AOP: Designing Aspect Mechanisms for Third-party Composition},
booktitle = {OOPSLA},
year      = {2005},
}



@Unpublished{km:modularaop,
author = {Gregor Kiczales and Mira Mezini},
title = {Aspect-Oriented Programming and Modular Reasoning},
note = {},
year = {2004},
annote = {Submitted to ICSE '05},
url = {http://www.cs.ubc.ca/~gregor/teaching/papers/aopmr34-sumbitted-icse-05.pdf}
}


@inproceedings{clifton:subtyping_analogy,
    crossref = {:aosd-splat03},
    url = {http://www.daimi.au.dk/~eernst/splat03/papers/Curtis_Clifton.pdf},
    author = {Curtis Clifton and Gary T. Leavens},
    title = {Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy}
}


@misc{ clifton:observers,
  author = "C. Clifton and G. Leavens",
  title = "Observers and assistants: A proposal for modular aspect-oriented reasoning",
  text = "C. Clifton and G. Leavens. Observers and assistants: A proposal for modular
    aspect-oriented reasoning. In Proc. FOAL Workshop, 2002.",
  year = "2002",
  url = "http://citeseer.ist.psu.edu/clifton02observers.html" }

@inproceedings{kiczales01:aspectj,
 author = {Gregor Kiczales and Erik Hilsdale and Jim Hugunin and Mik Kersten and Jeffrey Palm and William G. Griswold},
 title = {An Overview of AspectJ},
 booktitle = {ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming},
 year = {2001},
 isbn = {3-540-42206-4},
 pages = {327--353},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }


@inproceedings{jac,
 author = {Renaud Pawlak and Lionel Seinturier and Laurence Duchien and Gerard Florin},
 title = {JAC: A Flexible Solution for Aspect-Oriented Programming in {J}ava},
 booktitle = {Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns},
 year = {2001},
 isbn = {3-540-42618-3},
 pages = {1--24},
 publisher = {Springer-Verlag},
 }

@inproceedings{jasco,
    title = {{JAsCo}: {An} Aspect-Oriented approach tailored for Component Based Software Development},
    author = {Davy {Suv\'ee} and Wim Vanderperren},
    crossref = {:aosd03},
    pages = {21-29}
}



@inproceedings{caesar,
    title = {Conquering Aspects With {Caesar}},
    author = {Klaus Ostermann and Mira Mezini},
    crossref = {:aosd03},
    pages = {90-99}
}

@inproceedings{prose,
    title          = {Dynamic Weaving for Aspect-Oriented Programming},
    author         = {Andrei Popovici and Thomas Gross and Gustavo Alonso},
    pages          = {141-147},
    crossref       = {:aosd02}
}



% {Ak{\c s}it} TODO (edit in .bbl)

@proceedings{:aosd03,
    key            = {Aks03},
    title          = {Proc. 2nd Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2003)}},
    booktitle      = {Proc. 2nd Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2003)}},
    editor         = {Mehmet {Aksit}},
    publisher      = {ACM Press},
    year           = 2003,
    month          = mar,
    location       = {Boston}
}

@proceedings{:aosd02,
    title          = {Proc. 1st Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2002)}},
    booktitle      = {Proc. 1st Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2002)}},
    editor         = {Gregor Kiczales},
    publisher      = {ACM Press},
    year           = 2002,
    month          = apr,
    location       = {Enschede, The Netherlands}
}


@inproceedings{DBLP:conf/sigsoft/KrishnamurthiFG04,
  author    = {Shriram Krishnamurthi and
               Kathi Fisler and
               Michael Greenberg},
  title     = {Verifying aspect advice modularly.},
  booktitle = {SIGSOFT FSE},
  year      = {2004},
  pages     = {137-146},
  ee        = {http://doi.acm.org/10.1145/1029916},
  crossref  = {conf/sigsoft/2004},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{:aosd-splat03,
   month = mar,
   year = 2003,
   location = {Boston},
    url = {http://www.daimi.au.dk/~eernst/splat03/},
   title = {SPLAT: Software engineering Properties of Languages for Aspect Technologies},
   booktitle = {SPLAT: Software engineering Properties of Languages for Aspect Technologies},
   editor = {Lodewijk Bergmans and Johan Brichau and Peri Tarr and Erik Ernst},
   abstract = {This workshop will advance the field of AOSD language design by emphasizing the need to understand the practical consequences of design decisions on the software engineering properties of aspect-oriented software. In particular, it will help language designers understand and evaluate the tradeoffs entailed by aspect language features, and address the need for consistent language design with respect to composability of language constructs and features.}
}

@proceedings{DBLP:conf/sigsoft/2004,
  editor    = {Richard N. Taylor and
               Matthew B. Dwyer},
  title     = {Proceedings of the 12th ACM SIGSOFT International Symposium
               on Foundations of Software Engineering, 2004, Newport Beach,
               CA, USA, October 31 - November 6, 2004},
  booktitle = {SIGSOFT FSE},
  publisher = {ACM},
  year      = {2004},
  isbn      = {1-58113-855-5},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{demichiel87:clos,
 author = {Linda G. DeMichiel and Richard P. Gabriel},
 title = {The Common Lisp object system: an overview},
 booktitle = {European conference on object-oriented programming on ECOOP '87},
 year = {1987},
 isbn = {0-387-18353-1},
 pages = {151--170},
 location = {Paris, France},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }

@inproceedings{foote89:reflective,
 author = {B. Foote and R. E. Johnson},
 title = {Reflective facilities in Smalltalk-80},
 booktitle = {OOPSLA '89: Conference proceedings on Object-oriented programming systems, languages and applications},
 year = {1989},
 isbn = {0-89791-333-7},
 pages = {327--335},
 location = {New Orleans, Louisiana, United States},
 doi = {http://doi.acm.org/10.1145/74877.74911},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@book{kiczales91:amop,
 author = {Gregor Kiczales and Jim Des Rivieres},
 title = {The  Art of the Metaobject Protocol},
 year = {1991},
 isbn = {0262111586},
 publisher = {MIT Press},
 address = {Cambridge, MA, USA},
 }


@inproceedings{veit03:objectteams,
 author = {Matthias Veit and Stephan Herrmann},
 title = {Model-view-controller and object teams: a perfect match of paradigms},
 booktitle = {AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development},
 year = {2003},
 isbn = {1-58113-660-9},
 pages = {140--149},
 location = {Boston, Massachusetts},
 doi = {http://doi.acm.org/10.1145/643603.643618},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }



@InProceedings{zhao03:pipa,
        Author    = {J. Zhao and M. Rinard},
        Title     = {Pipa: A Behavioral Interface Specification Language for AspectJ},
        Booktitle = "Fundamental Approaches to Software Engineering (FASE 2003)",
        Address   = "Warsaw, Poland",
        Month     = Apr,
        Year      = 2003,
}


@inproceedings{itzstein02:joinjava,
 author = {G Stewart Itzstein and David Kearney},
 title = {Applications of Join {J}ava},
 booktitle = {CRPITS '02: Proceedings of the seventh Asia-Pacific conference on Computer systems architecture},
 year = {2002},
 isbn = {0-909925-84-4},
 pages = {37--46},
 location = {Melbourne, Victoria, Australia},
 publisher = {Australian Computer Society, Inc.},
 address = {Darlinghurst, Australia, Australia},
 }


@article{benton04:polyphonicsharp,
 author = {Nick Benton and Luca Cardelli and C\'edric Fournet},
 title = {Modern concurrency abstractions for {C}\#},
 journal = {ACM Trans. Program. Lang. Syst.},
 volume = {26},
 number = {5},
 year = {2004},
 issn = {0164-0925},
 pages = {769--804},
 doi = {http://doi.acm.org/10.1145/1018203.1018205},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@InProceedings{DrejhammarSchulteEa:ICLP:2003,
   Author =    "Frej Drejhammar and Christian Schulte and Seif Haridi and Per Brand",
   Title =     "Flow {Java}: Declarative Concurrency for {Java}",
   Editor =    "Catuscia Palamidessi",
   Booktitle = "Proceedings of the Nineteenth International Conference on Logic Programming",
   Year =      2003,
   Month =     dec,
   Address =   "Mumbai, India",
   Publisher = "Springer-Verlag",
   Series =    "Lecture Notes in Computer Science",
   Volume =    "2916",
   Pages =     "346--360",
   URL =       "http://www.imit.kth.se/~schulte/paper.html?id=DrejhammarSchulteEa:ICLP:2003"
}

@inproceedings{ flatt98:classes,
    author = "Matthew Flatt and Shriram Krishnamurthi and Matthias Felleisen",
    title = "Classes and Mixins",
    booktitle = "Conference Record of {POPL} 98: The 25TH {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages, San Diego, California",
    address = "New York, NY",
    pages = "171--183",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/flatt98classe.html" }

@inproceedings{ buchi00:generic,
  author={Martin B{\"u}chi and Wolfgang Weck},
  title={Generic Wrappers},
  booktitle={{ECOOP}, LNCS 1850},
  year={2000},
  editor={Elisa Bertino},
  pages={201--225},
  url = {http://citeseer.ist.psu.edu/buchi00generic.html} }

@inproceedings{schaerli03:traits,
  author = {Nathanael Sch\"arli and St\'ephane Ducasse and Oscar Nierstrasz and Andrew Black},
  title = {Traits: Composable Units of Behavior},
  booktitle = {Proceedings ECOOP 2003 (European Conference on Object-Oriented Programming)},
  series = {LNCS},
  volume = {2743},
  publisher = {Springer Verlag},
  month = jul,
  year = {2003},
  pages = {248-274},
  abstract = {Despite the undisputed prominence of inheritance as the fundamental
reuse mechanism in object-oriented programming languages, the main variants ---
single inheritance, multiple inheritance, and mixin inheritance --- all suffer from
conceptual and practical problems. In the first part of this paper, we identify and
illustrate these problems. We then present traits, a simple compositional model
for structuring object-oriented programs. A trait is essentially a group of pure
methods that serves as a building block for classes and is a primitive unit of
code reuse. In this model, classes are composed from a set of traits by specifying
glue code that connects the traits together and accesses the necessary state. We
demonstrate how traits overcome the problems arising from the different variants
of inheritance, we discuss how traits can be implemented effectively, and we
summarize our experience applying traits to refactor an existing class hierarchy.},
  url = {http://www.iam.unibe.ch/~scg/Archive/Papers/Scha03aTraits.pdf}
}

@inproceedings{ bracha90:mixin,
    author = "Gilad Bracha and William Cook",
    title = "Mixin-Based Inheritance",
    booktitle = "Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications / Proceedings of the European Conference on Object-Oriented Programming",
    publisher = "ACM Press",
    address = "Ottawa, Canada",
    editor = "Norman Meyrowitz",
    pages = "303--311",
    year = "1990",
    url = "http://citeseer.ist.psu.edu/bracha90mixinbased.html" }

@inproceedings{lamping93:specializationinterface,
    author = {Lamping, John  },
    booktitle = {OOPSLA '93: Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications},
    citeulike-article-id = {4317},
    doi = {10.1145/165854.165891},
    issn = {0362-1340},
    keywords = {honu oop},
    month = {October},
    number = {10},
    pages = {201--214},
    priority = {0},
    publisher = {ACM Press},
    title = {Typing the specialization interface},
    url = {http://dx.doi.org/10.1145/165854.165891},
    volume = {28},
    year = {1993}
}

@phdthesis{kniesel99:diss,
   author = {G√ºnter Kniesel},
   title = {Darwin -- Dynamic Object-Based Inheritance with Subtyping},
   type = {PhD thesis},
   school = {CS Dept. III, University of Bonn, Germany},
   year = {2000},
}

@article{ jr96:modeling,
    author = "Jonathan G. {Rossie Jr.} and Daniel P. Friedman and Mitchell Wand",
    title = "Modeling Subobject-Based Inheritance",
    journal = "Lecture Notes in Computer Science",
    volume = "1098",
    pages = "248--??",
    year = "1996",
    url = "http://citeseer.ist.psu.edu/article/rossie96modeling.html" }

@inproceedings{carre90:povnotion,
 author = {Bernard Carr√© and Jean-Marc Geib},
 title = {The point of view notion for multiple inheritance},
 booktitle = {Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications},
 year = {1990},
 isbn = {0-201-52430-X},
 pages = {312--321},
 location = {Ottawa, Canada},
 doi = {http://doi.acm.org/10.1145/97945.97983},
 publisher = {ACM Press},
 }


@inproceedings{tamai05:roles,
 author = {Tetsuo Tamai and Naoyasu Ubayashi and Ryoichi Ichiyama},
 title = {An adaptive object model with dynamic role binding},
 booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering},
 year = {2005},
 isbn = {1-59593-963-2},
 pages = {166--175},
 location = {St. Louis, MO, USA},
 doi = {http://doi.acm.org/10.1145/1062455.1062498},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@inproceedings{DBLP:conf/ecoop/Sakkinen89,
  author    = {Markku Sakkinen},
  title     = {Disciplined Inheritance.},
  booktitle = {ECOOP},
  year      = {1989},
  pages     = {39-56},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@article{DBLP:journals/jot/KeedyHME04,
  author    = {James Leslie Keedy and
               Christian Heinlein and
               Gisela Menger and
               Mark Evered},
  title     = {Diamond Inheritance and Attribute Types in Timor.},
  journal   = {Journal of Object Technology},
  volume    = {3},
  number    = {10},
  year      = {2004},
  pages     = {121-142},
  ee        = {http://www.jot.fm/issues/issue_2004_10/article2},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@INPROCEEDINGS{ostermann01:oocuntangled,
 author = "Klaus Ostermann and Mira Mezini",
 title = "Object-Oriented Composition Untangled",
 booktitle = "Proceedings OOPSLA '01, Tampa Bay, FL",
 year = "2001"
}

@article{DBLP:journals/jot/BarnettDFLS04,
  author    = {Michael Barnett and
               Robert DeLine and
               Manuel F{\"a}hndrich and
               K. Rustan M. Leino and
               Wolfram Schulte},
  title     = {Verification of Object-Oriented Programs with Invariants.},
  journal   = {Journal of Object Technology},
  volume    = {3},
  number    = {6},
  year      = {2004},
  pages     = {27-56},
  ee        = {http://www.jot.fm/issues/issue_2004_06/article2/article2.pdf},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{rajan05:classpects,
 author = {Hridesh Rajan and Kevin J. Sullivan},
 title = {Classpects: unifying aspect- and object-oriented language design},
 booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering},
 year = {2005},
 isbn = {1-59593-963-2},
 pages = {59--68},
 location = {St. Louis, MO, USA},
 doi = {http://doi.acm.org/10.1145/1062455.1062483},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@InProceedings{ernst01:fampol,
  author =       {Erik Ernst},
  title =        {Family Polymorphism},
  pages =        {303--326},
  editor =       {J{\o}rgen Lindskov Knudsen},
  booktitle =    {Proceedings {ECOOP} 2001},
  series =       {LNCS 2072},
  isbn =         {3-540-42206-4},
  publisher =    {Springer-Verlag},
  address =      {Heidelberg, Germany},
  year =         2001
}

@inproceedings{ buchi98:compound,
    author = "Martin Buchi and Wolfgang Weck",
    title = "Compound Types for {J}ava",
    booktitle = "Conference on Object-Oriented",
    pages = "362-373",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/buchi98compound.html" }


@inproceedings{ jolly04:concord,
 author    = {Paul Jolly and Sophia Drossopoulou and Christopher Anderson and Klaus Ostermann},
 title     = {Simple Dependent Types: Concord},
 booktitle = {ECOOP Workshop on Formal Techniques for {J}ava Programs (FTfJP 2004)},
 year      = {2004},
 month     = {June},
 address   = {Oslo, Norway},
 url       = {http://myitcv.org.uk/papers/concord04.html}
}

@inproceedings{allen04:oounits,
 author = {Eric Allen and David Chase and Victor Luchangco and Jan-Willem Maessen and Guy L. Steele, Jr.},
 title = {Object-oriented units of measurement},
 booktitle = {OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications},
 year = {2004},
 isbn = {1-58113-831-9},
 pages = {384--403},
 location = {Vancouver, BC, Canada},
 doi = {http://doi.acm.org/10.1145/1028976.1029008},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@inproceedings{boyapati03:ownership,
   author = {Chandrasekhar Boyapati and Barbara Liskov and Liuba Shrira},
   title = {Ownership Types for Object Encapsulation},
   booktitle = {ACM Symposium on Principles of Programming Languages (POPL)},
   address = {New Orleans, Louisiana},
   month = jan,
   year = {2003}
}

@book{szyperski02:cbsd,
 author = {Clemens Szyperski},
 title = {Component Software: Beyond Object-Oriented Programming},
 year = {2002},
 isbn = {0201745720},
 publisher = {Addison-Wesley Longman Publishing Co., Inc.},
 address = {Boston, MA, USA},
 }

@phdthesis{truyen04:lasagne,
   author = {Eddy Truyen},
   title = {Dynamic and Context-Sensitive Composition in Distributed Systems},
   type = {PhD thesis},
   school = {CS Dept., KU Leuven, Belgium},
   year = {2004},
}

@phdthesis{robben99:correlate,
   author = {Bert Robben},
   title = {Language Technology and Metalavel Architectures for Distributed Objects},
   type = {PhD thesis},
   school = {CS Dept., KU Leuven, Belgium},
   year = {1999},
}



@INPROCEEDINGS{igarashi99:featherweight,
  AUTHOR = {Atsushi Igarashi and Benjamin Pierce and Philip Wadler},
  TITLE = {Featherweight {J}ava: {A} Minimal Core Calculus for {J}ava
                  and {GJ}},
  MONTH = OCT,
  BOOKTITLE = {{ACM} {SIGPLAN} {C}onference on {O}bject {O}riented {P}rogramming:
                    {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})},
  YEAR = {1999},
  NOTE = {Full version in ACM Transactions on Programming
                  Languages and Systems (TOPLAS), 23(3), May 2001},
  PLCLUB = {Yes},
  BCP = {Yes},
  KEYS = {oop},
  CONF = {http://www.cis.upenn.edu/~bcpierce/papers/fj-oopsla.ps},
  FULL = {http://www.cis.upenn.edu/~bcpierce/papers/fj-toplas.pdf}
}

@Misc{moors05:featdisp,
author = {Adriaan Moors and Jan Smans and Eddy Truyen and Frank Piessens and Wouter Joosen},
title = {Safe language support for feature composition through feature-based dispatch},
month = {October},
year = {2005},
note = {In the informal proceedings of the {OOPSLA} workshop on {M}anaging {V}ariabilities {C}onsistently in {D}esign and {C}ode},
}

@inproceedings{ mezini98:adaptive,
    author = "Mira Mezini and Karl J. Lieberherr",
    title = "Adaptive Plug-and-Play Components for Evolutionary Software Development",
    booktitle = "Conference on Object-Oriented",
    pages = "97-116",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/article/mezini98adaptive.html" }

@inproceedings{ostermann02:deleglayers,
 author = {Klaus Ostermann},
 title = {Dynamically Composable Collaborations with Delegation Layers},
 booktitle = {ECOOP '02: Proceedings of the 16th European Conference on Object-Oriented Programming},
 year = {2002},
 isbn = {3-540-43759-2},
 pages = {89--110},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }


@inproceedings{bracha93:strongtalk,
 author = {Gilad Bracha and David Griswold},
 title = {Strongtalk: typechecking Smalltalk in a production environment},
 booktitle = {OOPSLA '93: Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications},
 year = {1993},
 isbn = {0-89791-587-9},
 pages = {215--230},
 location = {Washington, D.C., United States},
 doi = {http://doi.acm.org/10.1145/165854.165893},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@INPROCEEDINGS{marlow-wadler-erlang-97,
  TITLE = {A Practical Subtyping System for {Erlang}},
  AUTHOR = {Simon Marlow and Philip Wadler},
  PAGES = {136--149},
  BOOKTITLE = {ACM {I}nternational {C}onference on {F}unctional
                 {P}rogramming ({ICFP})},
  MONTH = JUN,
  YEAR = {1997}
}

@unpublished{ chambers04:cecil,
    author = "Craig {C}hambers {e}t {a}l.",
    title = "The {Cecil} Language Specification and Rationale: Version 3.2",
    year = "2004",
    month = "February",
    url = "http://www.cs.washington.edu/research/projects/cecil/www/Release/doc-cecil-lang/cecil-spec.ps" }

% TODO
@InProceedings{anderson05:typeinference,
  author =       {Christopher Anderson and Paola Giannini and Sophia Drossopoulou},
  title =        {Type Inference for Scripting Languages},
  booktitle = {ECOOP},
  year      = {2005},
}

%TODO
@inproceedings{cartwright91:soft,
 author = {Robert Cartwright and Mike Fagan},
 title = {Soft typing},
 booktitle = {PLDI '91: Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation},
 year = {1991},
 isbn = {0-89791-428-7},
 pages = {278--292},
 location = {Toronto, Ontario, Canada},
 doi = {http://doi.acm.org/10.1145/113445.113469},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

%Misc{brach04:pluggablepres,
%title = {Pluggable Type Systems},
%author = {Gilad Bracha},
%url = {http://bracha.org/pluggable-types.pdf},
%year = {2004},
%note = {Presentation of \cite{bracha04:pluggable}},
%}


@Misc{chameleon,
title = {A Systematic Approach in Type System Design},
author = {Martin Sulzmann and Peter J. Stuckey and Andreas Rossberg},
url ={http://www.comp.nus.edu.sg/~sulzmann/chr/},
year ={2005},
note = {The Chameleon website},
}

%TODO
@Unpublished{sulzmann05:chameleon,
author = {Martin Sulzmann and Jeremy Wazny},
title = {Advanced Type Extensions and Applications in Chameleon},
month = {May},
year = {2005},
url = {http://www.comp.nus.edu.sg/~sulzmann/advanced.ps}
}

@inproceedings{nystrom03:polyglot,
  author        = {Nathaniel Nystrom and Michael R. Clarkson and Andrew C. Myers},
  booktitle     = {Compiler Construction, 12th International Conference, CC 2003},
  year          = {2003},
  publisher     = {Springer-Verlag},
  volume        = {2622},
  title         = {Polyglot: An Extensible Compiler Framework for {J}ava},
  series        = {Lecture Notes in Computer Science},
  pages         = {138-152},
  pdf           = {http://www.cs.cornell.edu/andru/papers/polyglot.pdf},
  month         = {April}
}


@Misc{nekovm,
author = {Nicolas Cannasse},
title = {The {N}eko {VM} homepage},
url = {http://nekovm.org}
}

@inproceedings{conchon99:jocaml,
 author = {Silvain Conchon and Fabrice Le Fessant},
 title = {Jocaml: Mobile Agents for Objective-Caml},
 booktitle = {ASAMA '99: Proceedings of the First International Symposium on Agent Systems and Applications Third International Symposium on Mobile Agents},
 year = {1999},
 isbn = {0-7695-0340-3},
 pages = {22},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
 }

 % xj
@inproceedings{harren04:xj,
 author = {Matthew Harren and Mukund Raghavachari and Oded Shmueli and Michael G. Burke and Vivek Sarkar and Rajesh Bordawekar},
 title = {{XJ}: integration of {XML} processing into {J}ava},
 booktitle = {WWW Alt. '04: Proceedings of the 13th international World Wide Web conference on Alternate track papers \& posters},
 year = {2004},
 isbn = {1-58113-912-8},
 pages = {340--341},
 location = {New York, NY, USA},
 doi = {http://doi.acm.org/10.1145/1013367.1013465},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

 % xduce

 @INPROCEEDINGS{gapeyev03:xtatic,
  AUTHOR = {Vladimir Gapeyev and Benjamin C. Pierce},
  TITLE = {Regular Object Types},
  BOOKTITLE = {European Conference on Object-Oriented Programming (ECOOP), Darmstadt, Germany},
  YEAR = {2003},
  NOTE = {A preliminary version was presented at FOOL '03},
  PLCLUB = {Yes},
  BCP = {Yes},
  KEYS = {xtatic},
  SHORT = {http://www.cis.upenn.edu/~bcpierce/papers/regobj.pdf},
  SLIDES = {http://www.cis.upenn.edu/~bcpierce/papers/regobj-ecoop-slides.ps}
}


@InProceedings{KiniryCok04,
  author =   { Joseph R.~Kiniry and David R.~Cok },
  title =    { {ESC/Java2}: Uniting {ESC/Java} and {JML}: Progress and
                  issues in building and using {ESC/Java2} and a report
                  on a case study involving the use of {ESC/Java2} to
                  verify portions of an Internet voting tally system },
  booktitle = {Construction and Analysis of Safe,
               Secure and Interoperable Smart devices (CASSIS) },
  year =     2004,
  series =   lncs,
  note      = {To appear},
  publisher = pub-sv
}


@misc{ barnett-spec,
  author = "Mike Barnett and K. Rustan M. Leino and Wolfram Schulte",
  title = "The Spec\# Programming System: An Overview",
  url = "http://citeseer.ist.psu.edu/649115.html" }

@string          {ACM = "ACM Press"}
@string          {LNCS = "Lecture Notes in Computer Science"}
@string          {TOPLAS = "ACM Transactions on Programming Languages and Systems"}
@string          {ch= "Chapman and Hall"}
@string          {elsevier = "Elsevier"}
@string          {jic = "Information and Computation"}
@string          {jlap = "Journal of Logic and Algebraic Programming"}
@string          {prc = "Proceedings of "}
@string          {proc = "Proceedings of the "}
@string          {sv = "Springer-Verlag"}
@string          {tcs = "Theoretical Computer Science"}



@inproceedings   {FournetGonthier96,
author       =   {C\'{e}dric Fournet and
                  Georges Gonthier},
title        =   {The Reflexive Chemical Abstract Machine
                  and the Join-Calculus},
crossref     =   "popl96",
pages        =   "372--385",
abstract = "By adding reflexion to the chemical machine of Berry and
  Boudol, we obtain a formal model of concurrency that is consistent
  with mobility and distribution. Our model provides the foundations
  of a programming language with functional and object-oriented
  features. It can also be seen as a process calculus, the join
  calculus, which we prove equivalent to the pi calculus of Milner,
  Parrow, and Walker.",
filename = "reflexive-cham-join-calculus.ps"
}


@proceedings     {popl96
, key          =   "POPL'96"
, title        =   "Conference record of the 23th ACM SIGPLAN-SIGACT
                  Symposium on Principles of Programming Languages
                  (POPL'96)"
, booktitle        =   "Conference record of the 23th ACM SIGPLAN-SIGACT
                  Symposium on Principles of Programming Languages
                  (POPL'96)"
, organization =   "ACM"
, month        =   jan
, year         =   1996
, crossrefonly =   1
}


@inproceedings{lattner04:llvm,
 author = {Chris Lattner and Vikram Adve},
 title = {LLVM: A Compilation Framework for Lifelong Program Analysis \& Transformation},
 booktitle = {CGO '04: Proceedings of the international symposium on Code generation and optimization},
 year = {2004},
 isbn = {0-7695-2102-9},
 pages = {75},
 location = {Palo Alto, California},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
 }

@unpublished{moors07:tcpoly,
  author = {Adriaan Moors and Frank Piessens and Martin Odersky},
  title = {Towards Equal Rights for Higher-Kinded Types},
  note = {Accepted for the 6th International Workshop on Multiparadigm Programming with Object-Oriented Languages at the European Conference on Object-Oriented Programming (ECOOP)},
  year = 2007,
}

@Article{hl07mechanizing,
  author = 	 {Robert Harper and Daniel R. Licata},
  title = 	 {Mechanizing Metatheory in a Logical Framework},
  journal = 	 {Journal of Functional Programming},
  year = 	 {2007},
  note = 	 {To appear. Available from \url{http://www.cs.cmu.edu/~drl/}},
}

@Book{L:BC04,
  author       = "Bertot, Yves and Cast\'eran, Pierre",
  title        = "Interactive Theorem Proving and Program Development. Coq'Art: The Calculus of Inductive Constructions",
  series       = "Texts in Theoretical Computer Science",
  year         = "2004",
  publisher    = "Springer Verlag",
  url          = "http://www.labri.fr/publications/l3a/2004/BC04"
}

@Misc{girard:thesis,
  author = 	 {J.Y. Girard},
  title = 	 {Interpretation fonctionelle et elimination des coupures
                  de l'arithmetique d'ordre superieur},
  howpublished = {These d'Etat, Paris VII},
  year =	 1972
}

@TechReport{emir07:oopatmatch,
   abstract    = {Data in object-oriented programming is organized in a
                 hierarchy of classes. The problem of *object-oriented
                 pattern matching* is how to explore this hierarchy from
                 the outside. This usually involves classifying objects by
                 their run-time type, accessing their members, or
                 determining some other characteristic of a group of
                 objects. In this paper we compare six different pattern
                 matching techniques: object-oriented decomposition,
                 visitors, type-tests/type-casts, typecase, case classes,
                 and extractors. The techniques are compared on nine
                 criteria related to conciseness, maintainability and
                 performance. The paper introduces case classes and
                 extractors as two new pattern-matching methods and shows
                 that their combination works well for all of the
                 established criteria.},
   author      = {Emir, Burak and Odersky, Martin and Williams, John},
   details     = {http://infoscience.epfl.ch/search.py?recid=98468},
   documenturl = {http://infoscience.epfl.ch/getfile.py?recid=98468&mode=best},
   keywords    = {object-oriented programming; pattern matching; language
                 design; type systems; generalized algebraic data types},
   title       = {Matching {O}bjects with {P}atterns},
   unit        = {LAMP},
   note        = {To appear in the proceedings of ECOOP 2007.},
   year        = 2006
}

@TechReport{LAMP-REPORT-2006-001,
   abstract    = {Scala fuses object-oriented and functional programming
                 in a statically typed programming language. It is aimed
                 at the construction of components and component systems.
                 This paper gives an overview of the Scala language for
                 readers who are familar with programming methods and
                 programming language design.},
   author      = {Odersky, Martin and Altherr, Philippe and Cremet,
                 Vincent and Dragos, Iulian and Dubochet, Gilles and Emir,
                 Burak and McDirmid, Sean and Micheloud, St\'ephane and
                 Mihaylov, Nikolay and Schinz, Michel and Spoon, Lex and
                 Stenman, Erik and Zenger, Matthias},
   details     = {http://infoscience.epfl.ch/search.py?recid=85634},
   documenturl = {http://infoscience.epfl.ch/getfile.py?recid=85634&mode=best},
   keywords    = {components; programming language design; type systems;
                 web services; functional programming; object-oriented
                 programming; XML processing},
   title       = {An {O}verview of the {S}cala {P}rogramming {L}anguage (2. Edition)},
   unit        = {LAMP},
   year        = 2006
}

@TechReport{Henglein:SubtypingProperties:96,
  AUTHOR      = {Henglein, Fritz},
  YEAR        = {1996},
  TITLE       = {Syntactic Properties of Polymorphic Subtyping},
  INSTITUTION = {DIKU, University of Copenhagen},
  address     = {Universitetsparken 1, DK-2100 Copenhagen, Denmark},
  type        = {TOPPS Technical Report (D-report series)},
  number      = {D-293},
  month       = {May},
  keywords    = {Polymorphism, subtyping, type inference, syntactic
properties, principal type, Algorithm W, simplifications, qualified
type schemes, instance relation},
  summary     = {In this paper we study polymorphic subtyping, where the subtyping
theory is \emph{not} required to be structural.  We observe that type
schemes with subtyping qualifications are strictly necessary in order
to obtain principal typing.  We identify a new instance relation on
typing judgements, the \emph{halbstark} relation.  It is a hybrid,
lying in strength between Mitchell's original instance relation and
Fuh and Mishra's lazy instance relation.  We present a sound and
complete type inference algorithm in the style of Milner's Algorithm
W.  The significance of the halbstark relation emerges from the fact that
the algorithm is \emph{generic} in that it admits replacing 
typing judgements by \emph{any} halbstark-equivalent judgements at any
point.  This provides a generalized correctness argument for Algorithm W
independent of any particular constraint simplification strategy
chosen.  
Finally, we show that polymorphic typing judgements are
preserved under let-unfolding, let-folding, and
$\eta$-reduction, but not in general under $\beta$-reduction.  
The latter holds, though, if the subtyping discipline has the
\emph{decomposition} property, which says that two function types are
in a subtype relation only if their domain and range types are
in the appropriate contra-/covariant subtype relation.
},
  supersedes  = {},
  SEMNO       = {D-293},
  PUF         = {Tekniske rapport},
  ID          = {Tek}
}

@misc{Sheard:playing,
  author = "Tim Sheard",
  title = "Playing with Type Systems: Automated assistance in the design of
    programming langauges",
  note = {\url{http://web.cecs.pdx.edu/~sheard/papers/PlayingWithTypes2.ps}},
  year = 2006,
}

@misc{kidd07:setmonad,
  author = "Eric Kidd",
  title = "How to make Data.Set a monad",
  year = 2007,
  note = {Blog post at \url{http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros}}
}

@misc{volder94:setmonad,
  author = "Kris De Volder",
  title = {constructor classes \& "set" monad?},
  year = 1994,
  note = {Messages on comp.lang.functional  \url{http://groups.google.com/group/comp.lang.functional/browse_thread/thread/5db5c013d529b653/e10290b2511c65f0}}
}



@inproceedings{citeulike:975433,
	author = {Tim Sheard},
	booktitle = {PLPV},
	keywords = {dependent-types provers},
	priority = {0},
	title = {Type-level Computation Using Narrowing in {$\Omega$}mega.},
	url = {http://web.cecs.pdx.edu/~sheard/papers/sheardPLPV.ps},
	year = {2006}
}

@misc{ott,
  author = "Peter Sewell and Francesco Zappa Nardelli and Scott Owens and Gilles Peskine and Thomas Ridge and Susmit Sarkar and Rok Strni\u{s}a",
  title = "Ott: Effective Tool Support for the Working Semanticist",
  note = {Draft from \url{http://www.cl.cam.ac.uk/~pes20/ott/paper.pdf}},
  year = 2007,
}

@INPROCEEDINGS{moors06:oodgp,
	AUTHOR = {Adriaan Moors and Frank Piessens and Wouter Joosen},
	TITLE = {An {O}bject-{O}riented {A}pproach to {D}atatype-{G}eneric {P}rogramming},
	YEAR = {2006},
	BOOKTITLE = {Proceedings of the Workshop on Generic Programming}	
}

@INPROCEEDINGS{gibbons06:hodgp,
	AUTHOR = {Jeremy Gibbons},
	TITLE = {Design {P}atterns as {H}igher-{O}rder {D}atatype-{G}eneric {P}rograms},
	YEAR = {2006},
	BOOKTITLE = {Proceedings of the Workshop on Generic Programming}	
}


@INPROCEEDINGS{ barnett-spec,
  author = "Mike Barnett and K. Rustan M. Leino and Wolfram Schulte",
  title = "The {S}pec# {P}rogramming {S}ystem: {A}n {O}verview",
  year = {2004},
  booktitle = {Prooceedings},
  url = "citeseer.ist.psu.edu/649115.html" }


@inproceedings{Barnett2005:specsharp,
  title = {The Spec# Programming System: An Overview},
  author = {Mike Barnett and K. Rustan M. Leino and Wolfram Schulte},
  booktitle = {Construction and Analysis of Safe, Secure, and Interoperable Smart Devices},
  publisher = {Springer Berlin / Heidelberg},
  issn = {0302-9743 (Print) 1611-3349 (Online)},
  url = {http://springerlink.com/content/0m789xre652nuv06/},
  abstract = {The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software. This paper describes the goals and architecture of the Spec# programming system, consisting of the object-oriented Spec# programming language, the Spec# compiler, and the Boogie static program verifier. The language includes constructs for writing specifications that capture programmer intentions about how methods and data are to be used, the compiler emits run-time checks to enforce these specifications, and the verifier can check the consistency between a program and its specifications.},
  pages = {49--69},
  doi = {10.1007/b105030},
  year = {2005},
  month = {January},
}

% TODO: urls don't appear in references
@inproceedings{Clifton02:observers,
  author    = {C. Clifton and G. T. Leavens},
  title     = {Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning},
  booktitle = {FOAL 2002 Proceedings: Foundations of Aspect-Oriented Languages Workshop at AOSD 2002},
  year      = {2002},
  pages     = {33--44},
}

%% eerste termijn:



% TODO: urls don't appear in references
@inproceedings{DBLP:conf/pldi/Boehm05,
  author    = {Hans-Juergen Boehm},
  title     = {Threads cannot be implemented as a library.},
  booktitle = {PLDI},
  year      = {2005},
  pages     = {261-268},
  ee        = {http://doi.acm.org/10.1145/1065042},
  crossref  = {DBLP:conf/pldi/2005},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{DBLP:conf/pldi/2005,
  editor    = {Vivek Sarkar and
               Mary W. Hall},
  title     = {Proceedings of the ACM SIGPLAN 2005 Conference on Programming
               Language Design and Implementation, Chicago, IL, USA, June
               12-15, 2005},
  booktitle = {PLDI},
  publisher = {ACM},
  year      = {2005},
  isbn      = {1-59593-056-6},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{bierman05:essence,
    author = {Gavin Bierman and Erik Meijer and Wolfram Schulte},
    title = {The essence of data access in {C$\omega$}:
    {T}he power is in the dot!},
    booktitle = {ECOOP},
    year      = {2005},
    url = {http://research.microsoft.com/users/schulte/Papers/ TheEssenceOfDataAccessinCw(submitted).pdf}
}

%proceedings{DBLP:conf/ecoop/2005,
%TODO
%}

@inproceedings{cardelli05:transitions,
 author = {Luca Cardelli},
 title = {{T}ransitions in {P}rogramming {M}odels: 2},
 booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering},
 year = {2005},
 isbn = {1-59593-963-2},
 pages = {2},
 location = {St. Louis, MO, USA},
 doi = {http://doi.acm.org/10.1145/1062455.1062457},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 url =  {http://www.cs.wustl.edu/icse05/Home/CardelliKeynote.pdf}
}

@inproceedings{tatsubori99:openjava,
    author = "Michiaki Tatsubori and Shigeru Chiba and Kozo Itano and Marc-Olivier Killijian",
    title = "{OpenJava}: A Class-Based Macro System for {J}ava",
    booktitle = "{OORaSE}",
    pages = "117-133",
    year = "1999",
    url = "http://citeseer.ist.psu.edu/tatsubori00openjava.html" }

@inproceedings{bachrach01:JSE,
 author = {Jonathan Bachrach and Keith Playford},
 title = {The {J}ava syntactic extender (JSE)},
 booktitle = {OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications},
 year = {2001},
 isbn = {1-58113-335-9},
 pages = {31--42},
 location = {Tampa Bay, FL, USA},
 doi = {http://doi.acm.org/10.1145/504282.504285},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@InProceedings{stuckey02:overloading,
  author =   {P.~J.~Stuckey and M.~Sulzmann },
  title =    {A Theory of Overloading},
  booktitle =    "Proc.\ of ICFP'02",
  pages =    {167--178},
  year =     {2002},
  publisher = {ACM Press},
}


@InProceedings{chin05:semantic,
  author =   {Brian Chin and Shane Markstrum and Todd Millstein},
  title =    {Semantic Type Qualifiers},
  crossref =     {PLDI05},
  url =       {http://www.cs.ucla.edu/~todd/research/pldi05.html}
}



@Proceedings{PLDI05,
  title =    {Proceedings of the ACM SIGPLAN 2005 Conference on
                  Programming Language Design and Implementation},
  booktitle =    {Proceedings of the ACM SIGPLAN 2005 Conference on
                  Programming Language Design and Implementation},
  year =     2005,
  address =  {Chicago, Illinois},
  month =    jun # { 12--15},
  key =      {ACM},
  c-organization ={ACM},
}

@InProceedings{odersky-et-al:ecoop03,
  author =       {Martin Odersky and Vincent Cremet and Christine R\"ockl and Matthias Zenger},
  title =        {A Nominal Theory of Objects with Dependent Types},
  booktitle =    {Proc. ECOOP'03},
  year =         2003,
  month =        jul,
  series =       {Springer LNCS}
}

@INPROCEEDINGS{IgarashiPierceWadler99,
  AUTHOR = {Atsushi Igarashi and Benjamin Pierce and Philip Wadler},
  TITLE = {Featherweight {J}ava: {A} Minimal Core Calculus for {J}ava
                  and {GJ}},
  MONTH = OCT,
  BOOKTITLE = {{ACM} {SIGPLAN} {C}onference on {O}bject {O}riented {P}rogramming:
                    {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})},
  YEAR = {1999},
  NOTE = {Full version in ACM Transactions on Programming
                  Languages and Systems (TOPLAS), 23(3), May 2001},
  PLCLUB = {Yes},
  BCP = {Yes},
  KEYS = {oop},
  CONF = {http://www.cis.upenn.edu/~bcpierce/papers/fj-oopsla.ps},
  FULL = {http://www.cis.upenn.edu/~bcpierce/papers/fj-toplas.pdf}
}


@inproceedings{ bracha04:pluggable,
    author = "Gilad Bracha",
    title = "Pluggable Type Systems",
    booktitle = "{OOPSLA} Workshop on Revival of Dynamic Languages",
    year = "2004",
    url = "http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Bracha.pdf" }

@inproceedings{ meijer:static,
    author = "Erik Meijer and Peter Drayton",
    title = "Static Typing Where Possible, Dynamic Typing When Needed: The End of the Cold War Between Programming Languages",
    booktitle = "{OOPSLA} Workshop on Revival of Dynamic Languages",
    year = "2004",
    url = "http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Meijer.pdf" }

@inproceedings{bracha04:mirrors,
 author = {Gilad Bracha and David Ungar},
 title = {Mirrors: design principles for meta-level facilities of object-oriented programming languages},
 booktitle = {Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications},
 year = {2004},
 isbn = {1-58113-831-9},
 pages = {331--344},
 location = {Vancouver, BC, Canada},
 doi = {http://doi.acm.org/10.1145/1028976.1029004},
 publisher = {ACM Press},
 }

@Book{harper05:pltap,
    author = {Robert Harper},
    title = {Programming Languages: Theory and Practice},
    publisher = {},
    year = {2005},
    note = {Draft},
}

@inproceedings{ kniesel98:typesafe,
    author = "Gunter Kniesel",
    title = "Type-Safe Delegation for Dynamic Component Adaptation",
    booktitle = "{ECOOP} Workshops",
    pages = "136-137",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/490492.html" }

@PhdThesis{kolbly02:extensible,
author = "Donovan Michael Kolbly",
title = "Extensible Language Implementation",
url = "http://citeseer.ist.psu.edu/kolbly02extensible.html" }
school = {The University of Texas at Austin},
year = {2002},
}

@inproceedings{flatt02:composable,
 author = {Matthew Flatt},
 title = {Composable and compilable macros: you want it when?},
 booktitle = {ICFP '02: Proceedings of the seventh ACM SIGPLAN international conference on Functional programming},
 year = {2002},
 isbn = {1-58113-487-8},
 pages = {72--83},
 location = {Pittsburgh, PA, USA},
 doi = {http://doi.acm.org/10.1145/581478.581486},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@techreport{moggie98:idealized,
 author = {Eugenio Moggi and Walid Taha and Zine E Benaissa and Tim Sheard},
 title = {An Idealized MetaML: Simpler, and More Expressive},
 year = {1998},
 publisher = {Oregon Graduate Institute School of Science \& Engineering},
 }


@inproceedings{taha03:snd,
 author = {Walid Taha and Patricia Johann},
 title = {Staged notational definitions},
 booktitle = {GPCE '03: Proceedings of the second international conference on Generative programming and component engineering},
 year = {2003},
 isbn = {3-540-20102-5},
 pages = {97--116},
 location = {Erfurt, Germany},
 publisher = {Springer-Verlag New York, Inc.},
 address = {New York, NY, USA},
 }


@inproceedings{DBLP:conf/gpce/NeverovR04,
  author    = {Gregory Neverov and
               Paul Roe},
  title     = {Metaphor: A Multi-stage, Object-Oriented Programming Language.},
  booktitle = {GPCE},
  year      = {2004},
  pages     = {168--185},
  ee        = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=168},
  crossref  = {DBLP:conf/gpce/2004},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{DBLP:conf/gpce/2004,
  editor    = {Gabor Karsai and
               Eelco Visser},
  title     = {Generative Programming and Component Engineering: Third
               International Conference, GPCE 2004, Vancouver, Canada,
               October 24-28, 2004. Proceedings},
  booktitle = {GPCE},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {3286},
  year      = {2004},
  isbn      = {3-540-23580-9},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{neverov05:fullyreflective,
 author = {Gregory Neverov and Paul Roe},
 title = {Towards a fully-reflective meta-programming language},
 booktitle = {CRPIT '38: Proceedings of the Twenty-eighth Australasian conference on Computer Science},
 year = {2005},
 isbn = {1-920-68220-1},
 pages = {151--158},
 location = {Newcastle, Australia},
 publisher = {Australian Computer Society, Inc.},
 address = {Darlinghurst, Australia, Australia},
 }

@unpublished{bloch04:jsr175,
  author = {Joshua Bloch},
  title = {{JSR} 175: A metadata facility for the {J}ava programming language},
  url = {http://jcp.org/en/jsr/detail?id=175},
}

@unpublished{odersky05:introscala,
title = {An Introduction to {S}cala},
author = {Martin Odersky and Philippe Altherr and Vincent Cremet and Burak Emir and St√©phane and Micheloud Nikolay Mihaylov and Michel Schinz and Erik Stenman and Matthias Zenger},
month = {August},
year = {2005},
url = {http://scala.epfl.ch/docu/files/ScalaIntro.pdf},
}

@inproceedings{ganz01:macros,
 author = {Steven E. Ganz and Amr Sabry and Walid Taha},
 title = {Macros as multi-stage computations: type-safe, generative, binding macros in MacroML},
 booktitle = {ICFP '01: Proceedings of the sixth ACM SIGPLAN international conference on Functional programming},
 year = {2001},
 isbn = {1-58113-415-0},
 pages = {74--85},
 location = {Florence, Italy},
 doi = {http://doi.acm.org/10.1145/507635.507646},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

 @inproceedings{clifton00:multijava,
 author = {Curtis Clifton and Gary T. Leavens and Craig Chambers and Todd Millstein},
 title = {{MultiJava}: modular open classes and symmetric multiple dispatch for {J}ava},
 booktitle = {OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications},
 year = {2000},
 isbn = {1-58113-200-X},
 pages = {130--145},
 location = {Minneapolis, Minnesota, United States},
 doi = {http://doi.acm.org/10.1145/353171.353181},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@inproceedings{aldrich05:openmodules,
author = {Jonathan Aldrich},
title = {Open Modules: Modular Reasoning about Advice},
booktitle = {ECOOP},
year      = {2005},
url = {http://www-2.cs.cmu.edu/~aldrich/papers/open-modules.pdf}
}

@inproceedings{kojarski05:pluggable,
author = {Sergei Kojarski and David Lorenz},
title = {Pluggable AOP: Designing Aspect Mechanisms for Third-party Composition},
booktitle = {OOPSLA},
year      = {2005},
}



@Unpublished{km:modularaop,
author = {Gregor Kiczales and Mira Mezini},
title = {Aspect-Oriented Programming and Modular Reasoning},
note = {},
year = {2004},
annote = {Submitted to ICSE '05},
url = {http://www.cs.ubc.ca/~gregor/teaching/papers/aopmr34-sumbitted-icse-05.pdf}
}


@inproceedings{clifton:subtyping_analogy,
    crossref = {:aosd-splat03},
    url = {http://www.daimi.au.dk/~eernst/splat03/papers/Curtis_Clifton.pdf},
    author = {Curtis Clifton and Gary T. Leavens},
    title = {Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy}
}


@misc{ clifton:observers,
  author = "C. Clifton and G. Leavens",
  title = "Observers and assistants: A proposal for modular aspect-oriented reasoning",
  text = "C. Clifton and G. Leavens. Observers and assistants: A proposal for modular
    aspect-oriented reasoning. In Proc. FOAL Workshop, 2002.",
  year = "2002",
  url = "http://citeseer.ist.psu.edu/clifton02observers.html" }

@inproceedings{kiczales01:aspectj,
 author = {Gregor Kiczales and Erik Hilsdale and Jim Hugunin and Mik Kersten and Jeffrey Palm and William G. Griswold},
 title = {An Overview of AspectJ},
 booktitle = {ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming},
 year = {2001},
 isbn = {3-540-42206-4},
 pages = {327--353},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }


@inproceedings{jac,
 author = {Renaud Pawlak and Lionel Seinturier and Laurence Duchien and Gerard Florin},
 title = {JAC: A Flexible Solution for Aspect-Oriented Programming in {J}ava},
 booktitle = {Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns},
 year = {2001},
 isbn = {3-540-42618-3},
 pages = {1--24},
 publisher = {Springer-Verlag},
 }

@inproceedings{jasco,
    title = {{JAsCo}: {An} Aspect-Oriented approach tailored for Component Based Software Development},
    author = {Davy {Suv\'ee} and Wim Vanderperren},
    crossref = {:aosd03},
    pages = {21-29}
}



@inproceedings{caesar,
    title = {Conquering Aspects With {Caesar}},
    author = {Klaus Ostermann and Mira Mezini},
    crossref = {:aosd03},
    pages = {90-99}
}

@inproceedings{prose,
    title          = {Dynamic Weaving for Aspect-Oriented Programming},
    author         = {Andrei Popovici and Thomas Gross and Gustavo Alonso},
    pages          = {141-147},
    crossref       = {:aosd02}
}



% {Ak{\c s}it} TODO (edit in .bbl)

@proceedings{:aosd03,
    key            = {Aks03},
    title          = {Proc. 2nd Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2003)}},
    booktitle      = {Proc. 2nd Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2003)}},
    editor         = {Mehmet {Aksit}},
    publisher      = {ACM Press},
    year           = 2003,
    month          = mar,
    location       = {Boston}
}

@proceedings{:aosd02,
    title          = {Proc. 1st Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2002)}},
    booktitle      = {Proc. 1st Int' Conf. on Aspect-Oriented Software Development {({AOSD}-2002)}},
    editor         = {Gregor Kiczales},
    publisher      = {ACM Press},
    year           = 2002,
    month          = apr,
    location       = {Enschede, The Netherlands}
}


@inproceedings{DBLP:conf/sigsoft/KrishnamurthiFG04,
  author    = {Shriram Krishnamurthi and
               Kathi Fisler and
               Michael Greenberg},
  title     = {Verifying aspect advice modularly.},
  booktitle = {SIGSOFT FSE},
  year      = {2004},
  pages     = {137-146},
  ee        = {http://doi.acm.org/10.1145/1029916},
  crossref  = {conf/sigsoft/2004},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{:aosd-splat03,
   month = mar,
   year = 2003,
   location = {Boston},
    url = {http://www.daimi.au.dk/~eernst/splat03/},
   title = {SPLAT: Software engineering Properties of Languages for Aspect Technologies},
   booktitle = {SPLAT: Software engineering Properties of Languages for Aspect Technologies},
   editor = {Lodewijk Bergmans and Johan Brichau and Peri Tarr and Erik Ernst},
   abstract = {This workshop will advance the field of AOSD language design by emphasizing the need to understand the practical consequences of design decisions on the software engineering properties of aspect-oriented software. In particular, it will help language designers understand and evaluate the tradeoffs entailed by aspect language features, and address the need for consistent language design with respect to composability of language constructs and features.}
}

@proceedings{DBLP:conf/sigsoft/2004,
  editor    = {Richard N. Taylor and
               Matthew B. Dwyer},
  title     = {Proceedings of the 12th ACM SIGSOFT International Symposium
               on Foundations of Software Engineering, 2004, Newport Beach,
               CA, USA, October 31 - November 6, 2004},
  booktitle = {SIGSOFT FSE},
  publisher = {ACM},
  year      = {2004},
  isbn      = {1-58113-855-5},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{demichiel87:clos,
 author = {Linda G. DeMichiel and Richard P. Gabriel},
 title = {The Common Lisp object system: an overview},
 booktitle = {European conference on object-oriented programming on ECOOP '87},
 year = {1987},
 isbn = {0-387-18353-1},
 pages = {151--170},
 location = {Paris, France},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }

@inproceedings{foote89:reflective,
 author = {B. Foote and R. E. Johnson},
 title = {Reflective facilities in Smalltalk-80},
 booktitle = {OOPSLA '89: Conference proceedings on Object-oriented programming systems, languages and applications},
 year = {1989},
 isbn = {0-89791-333-7},
 pages = {327--335},
 location = {New Orleans, Louisiana, United States},
 doi = {http://doi.acm.org/10.1145/74877.74911},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@book{kiczales91:amop,
 author = {Gregor Kiczales and Jim Des Rivieres},
 title = {The  Art of the Metaobject Protocol},
 year = {1991},
 isbn = {0262111586},
 publisher = {MIT Press},
 address = {Cambridge, MA, USA},
 }


@inproceedings{veit03:objectteams,
 author = {Matthias Veit and Stephan Herrmann},
 title = {Model-view-controller and object teams: a perfect match of paradigms},
 booktitle = {AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development},
 year = {2003},
 isbn = {1-58113-660-9},
 pages = {140--149},
 location = {Boston, Massachusetts},
 doi = {http://doi.acm.org/10.1145/643603.643618},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }



@InProceedings{zhao03:pipa,
        Author    = {J. Zhao and M. Rinard},
        Title     = {Pipa: A Behavioral Interface Specification Language for AspectJ},
        Booktitle = "Fundamental Approaches to Software Engineering (FASE 2003)",
        Address   = "Warsaw, Poland",
        Month     = Apr,
        Year      = 2003,
}


@inproceedings{itzstein02:joinjava,
 author = {G Stewart Itzstein and David Kearney},
 title = {Applications of Join {J}ava},
 booktitle = {CRPITS '02: Proceedings of the seventh Asia-Pacific conference on Computer systems architecture},
 year = {2002},
 isbn = {0-909925-84-4},
 pages = {37--46},
 location = {Melbourne, Victoria, Australia},
 publisher = {Australian Computer Society, Inc.},
 address = {Darlinghurst, Australia, Australia},
 }


@article{benton04:polyphonicsharp,
 author = {Nick Benton and Luca Cardelli and C\'edric Fournet},
 title = {Modern concurrency abstractions for {C}\#},
 journal = {ACM Trans. Program. Lang. Syst.},
 volume = {26},
 number = {5},
 year = {2004},
 issn = {0164-0925},
 pages = {769--804},
 doi = {http://doi.acm.org/10.1145/1018203.1018205},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@InProceedings{DrejhammarSchulteEa:ICLP:2003,
   Author =    "Frej Drejhammar and Christian Schulte and Seif Haridi and Per Brand",
   Title =     "Flow {Java}: Declarative Concurrency for {Java}",
   Editor =    "Catuscia Palamidessi",
   Booktitle = "Proceedings of the Nineteenth International Conference on Logic Programming",
   Year =      2003,
   Month =     dec,
   Address =   "Mumbai, India",
   Publisher = "Springer-Verlag",
   Series =    "Lecture Notes in Computer Science",
   Volume =    "2916",
   Pages =     "346--360",
   URL =       "http://www.imit.kth.se/~schulte/paper.html?id=DrejhammarSchulteEa:ICLP:2003"
}

@inproceedings{ flatt98:classes,
    author = "Matthew Flatt and Shriram Krishnamurthi and Matthias Felleisen",
    title = "Classes and Mixins",
    booktitle = "Conference Record of {POPL} 98: The 25TH {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages, San Diego, California",
    address = "New York, NY",
    pages = "171--183",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/flatt98classe.html" }

@inproceedings{ buchi00:generic,
  author={Martin B{\"u}chi and Wolfgang Weck},
  title={Generic Wrappers},
  booktitle={{ECOOP}, LNCS 1850},
  year={2000},
  editor={Elisa Bertino},
  pages={201--225},
  url = {http://citeseer.ist.psu.edu/buchi00generic.html} }

@inproceedings{schaerli03:traits,
  author = {Nathanael Sch\"arli and St\'ephane Ducasse and Oscar Nierstrasz and Andrew Black},
  title = {Traits: Composable Units of Behavior},
  booktitle = {Proceedings ECOOP 2003 (European Conference on Object-Oriented Programming)},
  series = {LNCS},
  volume = {2743},
  publisher = {Springer Verlag},
  month = jul,
  year = {2003},
  pages = {248-274},
  abstract = {Despite the undisputed prominence of inheritance as the fundamental
reuse mechanism in object-oriented programming languages, the main variants ---
single inheritance, multiple inheritance, and mixin inheritance --- all suffer from
conceptual and practical problems. In the first part of this paper, we identify and
illustrate these problems. We then present traits, a simple compositional model
for structuring object-oriented programs. A trait is essentially a group of pure
methods that serves as a building block for classes and is a primitive unit of
code reuse. In this model, classes are composed from a set of traits by specifying
glue code that connects the traits together and accesses the necessary state. We
demonstrate how traits overcome the problems arising from the different variants
of inheritance, we discuss how traits can be implemented effectively, and we
summarize our experience applying traits to refactor an existing class hierarchy.},
  url = {http://www.iam.unibe.ch/~scg/Archive/Papers/Scha03aTraits.pdf}
}

@inproceedings{ bracha90:mixin,
    author = "Gilad Bracha and William Cook",
    title = "Mixin-Based Inheritance",
    booktitle = "Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications / Proceedings of the European Conference on Object-Oriented Programming",
    publisher = "ACM Press",
    address = "Ottawa, Canada",
    editor = "Norman Meyrowitz",
    pages = "303--311",
    year = "1990",
    url = "http://citeseer.ist.psu.edu/bracha90mixinbased.html" }

@inproceedings{lamping93:specializationinterface,
    author = {Lamping, John  },
    booktitle = {OOPSLA '93: Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications},
    citeulike-article-id = {4317},
    doi = {10.1145/165854.165891},
    issn = {0362-1340},
    keywords = {honu oop},
    month = {October},
    number = {10},
    pages = {201--214},
    priority = {0},
    publisher = {ACM Press},
    title = {Typing the specialization interface},
    url = {http://dx.doi.org/10.1145/165854.165891},
    volume = {28},
    year = {1993}
}

@phdthesis{kniesel99:diss,
   author = {G√ºnter Kniesel},
   title = {Darwin -- Dynamic Object-Based Inheritance with Subtyping},
   type = {PhD thesis},
   school = {CS Dept. III, University of Bonn, Germany},
   year = {2000},
}

@article{ jr96:modeling,
    author = "Jonathan G. {Rossie Jr.} and Daniel P. Friedman and Mitchell Wand",
    title = "Modeling Subobject-Based Inheritance",
    journal = "Lecture Notes in Computer Science",
    volume = "1098",
    pages = "248--??",
    year = "1996",
    url = "http://citeseer.ist.psu.edu/article/rossie96modeling.html" }

@inproceedings{carre90:povnotion,
 author = {Bernard Carr√© and Jean-Marc Geib},
 title = {The point of view notion for multiple inheritance},
 booktitle = {Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications},
 year = {1990},
 isbn = {0-201-52430-X},
 pages = {312--321},
 location = {Ottawa, Canada},
 doi = {http://doi.acm.org/10.1145/97945.97983},
 publisher = {ACM Press},
 }


@inproceedings{tamai05:roles,
 author = {Tetsuo Tamai and Naoyasu Ubayashi and Ryoichi Ichiyama},
 title = {An adaptive object model with dynamic role binding},
 booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering},
 year = {2005},
 isbn = {1-59593-963-2},
 pages = {166--175},
 location = {St. Louis, MO, USA},
 doi = {http://doi.acm.org/10.1145/1062455.1062498},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@inproceedings{DBLP:conf/ecoop/Sakkinen89,
  author    = {Markku Sakkinen},
  title     = {Disciplined Inheritance.},
  booktitle = {ECOOP},
  year      = {1989},
  pages     = {39-56},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@article{DBLP:journals/jot/KeedyHME04,
  author    = {James Leslie Keedy and
               Christian Heinlein and
               Gisela Menger and
               Mark Evered},
  title     = {Diamond Inheritance and Attribute Types in Timor.},
  journal   = {Journal of Object Technology},
  volume    = {3},
  number    = {10},
  year      = {2004},
  pages     = {121-142},
  ee        = {http://www.jot.fm/issues/issue_2004_10/article2},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@INPROCEEDINGS{ostermann01:oocuntangled,
 author = "Klaus Ostermann and Mira Mezini",
 title = "Object-Oriented Composition Untangled",
 booktitle = "Proceedings OOPSLA '01, Tampa Bay, FL",
 year = "2001"
}

@article{DBLP:journals/jot/BarnettDFLS04,
  author    = {Michael Barnett and
               Robert DeLine and
               Manuel F{\"a}hndrich and
               K. Rustan M. Leino and
               Wolfram Schulte},
  title     = {Verification of Object-Oriented Programs with Invariants.},
  journal   = {Journal of Object Technology},
  volume    = {3},
  number    = {6},
  year      = {2004},
  pages     = {27-56},
  ee        = {http://www.jot.fm/issues/issue_2004_06/article2/article2.pdf},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{rajan05:classpects,
 author = {Hridesh Rajan and Kevin J. Sullivan},
 title = {Classpects: unifying aspect- and object-oriented language design},
 booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering},
 year = {2005},
 isbn = {1-59593-963-2},
 pages = {59--68},
 location = {St. Louis, MO, USA},
 doi = {http://doi.acm.org/10.1145/1062455.1062483},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@InProceedings{ernst01:fampol,
  author =       {Erik Ernst},
  title =        {Family Polymorphism},
  pages =        {303--326},
  editor =       {J{\o}rgen Lindskov Knudsen},
  booktitle =    {Proceedings {ECOOP} 2001},
  series =       {LNCS 2072},
  isbn =         {3-540-42206-4},
  publisher =    {Springer-Verlag},
  address =      {Heidelberg, Germany},
  year =         2001
}

@inproceedings{ buchi98:compound,
    author = "Martin Buchi and Wolfgang Weck",
    title = "Compound Types for {J}ava",
    booktitle = "Conference on Object-Oriented",
    pages = "362-373",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/buchi98compound.html" }


@inproceedings{ jolly04:concord,
 author    = {Paul Jolly and Sophia Drossopoulou and Christopher Anderson and Klaus Ostermann},
 title     = {Simple Dependent Types: Concord},
 booktitle = {ECOOP Workshop on Formal Techniques for {J}ava Programs (FTfJP 2004)},
 year      = {2004},
 month     = {June},
 address   = {Oslo, Norway},
 url       = {http://myitcv.org.uk/papers/concord04.html}
}

@inproceedings{allen04:oounits,
 author = {Eric Allen and David Chase and Victor Luchangco and Jan-Willem Maessen and Guy L. Steele, Jr.},
 title = {Object-oriented units of measurement},
 booktitle = {OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications},
 year = {2004},
 isbn = {1-58113-831-9},
 pages = {384--403},
 location = {Vancouver, BC, Canada},
 doi = {http://doi.acm.org/10.1145/1028976.1029008},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@inproceedings{boyapati03:ownership,
   author = {Chandrasekhar Boyapati and Barbara Liskov and Liuba Shrira},
   title = {Ownership Types for Object Encapsulation},
   booktitle = {ACM Symposium on Principles of Programming Languages (POPL)},
   address = {New Orleans, Louisiana},
   month = jan,
   year = {2003}
}

@book{szyperski02:cbsd,
 author = {Clemens Szyperski},
 title = {Component Software: Beyond Object-Oriented Programming},
 year = {2002},
 isbn = {0201745720},
 publisher = {Addison-Wesley Longman Publishing Co., Inc.},
 address = {Boston, MA, USA},
 }

@phdthesis{truyen04:lasagne,
   author = {Eddy Truyen},
   title = {Dynamic and Context-Sensitive Composition in Distributed Systems},
   type = {PhD thesis},
   school = {CS Dept., KU Leuven, Belgium},
   year = {2004},
}

@phdthesis{robben99:correlate,
   author = {Bert Robben},
   title = {Language Technology and Metalavel Architectures for Distributed Objects},
   type = {PhD thesis},
   school = {CS Dept., KU Leuven, Belgium},
   year = {1999},
}



@INPROCEEDINGS{igarashi99:featherweight,
  AUTHOR = {Atsushi Igarashi and Benjamin Pierce and Philip Wadler},
  TITLE = {Featherweight {J}ava: {A} Minimal Core Calculus for {J}ava
                  and {GJ}},
  MONTH = OCT,
  BOOKTITLE = {{ACM} {SIGPLAN} {C}onference on {O}bject {O}riented {P}rogramming:
                    {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})},
  YEAR = {1999},
  NOTE = {Full version in ACM Transactions on Programming
                  Languages and Systems (TOPLAS), 23(3), May 2001},
  PLCLUB = {Yes},
  BCP = {Yes},
  KEYS = {oop},
  CONF = {http://www.cis.upenn.edu/~bcpierce/papers/fj-oopsla.ps},
  FULL = {http://www.cis.upenn.edu/~bcpierce/papers/fj-toplas.pdf}
}

@Misc{moors05:featdisp,
author = {Adriaan Moors and Jan Smans and Eddy Truyen and Frank Piessens and Wouter Joosen},
title = {Safe language support for feature composition through feature-based dispatch},
month = {October},
year = {2005},
note = {In the informal proceedings of the {OOPSLA} workshop on {M}anaging {V}ariabilities {C}onsistently in {D}esign and {C}ode},
}

@inproceedings{ mezini98:adaptive,
    author = "Mira Mezini and Karl J. Lieberherr",
    title = "Adaptive Plug-and-Play Components for Evolutionary Software Development",
    booktitle = "Conference on Object-Oriented",
    pages = "97-116",
    year = "1998",
    url = "http://citeseer.ist.psu.edu/article/mezini98adaptive.html" }

@inproceedings{ostermann02:deleglayers,
 author = {Klaus Ostermann},
 title = {Dynamically Composable Collaborations with Delegation Layers},
 booktitle = {ECOOP '02: Proceedings of the 16th European Conference on Object-Oriented Programming},
 year = {2002},
 isbn = {3-540-43759-2},
 pages = {89--110},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }


@inproceedings{bracha93:strongtalk,
 author = {Gilad Bracha and David Griswold},
 title = {Strongtalk: typechecking Smalltalk in a production environment},
 booktitle = {OOPSLA '93: Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications},
 year = {1993},
 isbn = {0-89791-587-9},
 pages = {215--230},
 location = {Washington, D.C., United States},
 doi = {http://doi.acm.org/10.1145/165854.165893},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

@INPROCEEDINGS{marlow-wadler-erlang-97,
  TITLE = {A Practical Subtyping System for {Erlang}},
  AUTHOR = {Simon Marlow and Philip Wadler},
  PAGES = {136--149},
  BOOKTITLE = {ACM {I}nternational {C}onference on {F}unctional
                 {P}rogramming ({ICFP})},
  MONTH = JUN,
  YEAR = {1997}
}

@unpublished{ chambers04:cecil,
    author = "Craig {C}hambers {e}t {a}l.",
    title = "The {Cecil} Language Specification and Rationale: Version 3.2",
    year = "2004",
    month = "February",
    url = "http://www.cs.washington.edu/research/projects/cecil/www/Release/doc-cecil-lang/cecil-spec.ps" }

% TODO
@InProceedings{anderson05:typeinference,
  author =       {Christopher Anderson and Paola Giannini and Sophia Drossopoulou},
  title =        {Type Inference for Scripting Languages},
  booktitle = {ECOOP},
  year      = {2005},
}

%TODO
@inproceedings{cartwright91:soft,
 author = {Robert Cartwright and Mike Fagan},
 title = {Soft typing},
 booktitle = {PLDI '91: Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation},
 year = {1991},
 isbn = {0-89791-428-7},
 pages = {278--292},
 location = {Toronto, Ontario, Canada},
 doi = {http://doi.acm.org/10.1145/113445.113469},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

%Misc{brach04:pluggablepres,
%title = {Pluggable Type Systems},
%author = {Gilad Bracha},
%url = {http://bracha.org/pluggable-types.pdf},
%year = {2004},
%note = {Presentation of \cite{bracha04:pluggable}},
%}


@Misc{chameleon,
title = {A Systematic Approach in Type System Design},
author = {Martin Sulzmann and Peter J. Stuckey and Andreas Rossberg},
url ={http://www.comp.nus.edu.sg/~sulzmann/chr/},
year ={2005},
note = {The Chameleon website},
}

%TODO
@Unpublished{sulzmann05:chameleon,
author = {Martin Sulzmann and Jeremy Wazny},
title = {Advanced Type Extensions and Applications in Chameleon},
month = {May},
year = {2005},
url = {http://www.comp.nus.edu.sg/~sulzmann/advanced.ps}
}

@inproceedings{nystrom03:polyglot,
  author        = {Nathaniel Nystrom and Michael R. Clarkson and Andrew C. Myers},
  booktitle     = {Compiler Construction, 12th International Conference, CC 2003},
  year          = {2003},
  publisher     = {Springer-Verlag},
  volume        = {2622},
  title         = {Polyglot: An Extensible Compiler Framework for {J}ava},
  series        = {Lecture Notes in Computer Science},
  pages         = {138-152},
  pdf           = {http://www.cs.cornell.edu/andru/papers/polyglot.pdf},
  month         = {April}
}


@Misc{nekovm,
author = {Nicolas Cannasse},
title = {The {N}eko {VM} homepage},
url = {http://nekovm.org}
}

@inproceedings{conchon99:jocaml,
 author = {Silvain Conchon and Fabrice Le Fessant},
 title = {Jocaml: Mobile Agents for Objective-Caml},
 booktitle = {ASAMA '99: Proceedings of the First International Symposium on Agent Systems and Applications Third International Symposium on Mobile Agents},
 year = {1999},
 isbn = {0-7695-0340-3},
 pages = {22},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
 }

 % xj
@inproceedings{harren04:xj,
 author = {Matthew Harren and Mukund Raghavachari and Oded Shmueli and Michael G. Burke and Vivek Sarkar and Rajesh Bordawekar},
 title = {{XJ}: integration of {XML} processing into {J}ava},
 booktitle = {WWW Alt. '04: Proceedings of the 13th international World Wide Web conference on Alternate track papers \& posters},
 year = {2004},
 isbn = {1-58113-912-8},
 pages = {340--341},
 location = {New York, NY, USA},
 doi = {http://doi.acm.org/10.1145/1013367.1013465},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }

 % xduce

 @INPROCEEDINGS{gapeyev03:xtatic,
  AUTHOR = {Vladimir Gapeyev and Benjamin C. Pierce},
  TITLE = {Regular Object Types},
  BOOKTITLE = {European Conference on Object-Oriented Programming (ECOOP), Darmstadt, Germany},
  YEAR = {2003},
  NOTE = {A preliminary version was presented at FOOL '03},
  PLCLUB = {Yes},
  BCP = {Yes},
  KEYS = {xtatic},
  SHORT = {http://www.cis.upenn.edu/~bcpierce/papers/regobj.pdf},
  SLIDES = {http://www.cis.upenn.edu/~bcpierce/papers/regobj-ecoop-slides.ps}
}


@InProceedings{KiniryCok04,
  author =   { Joseph R.~Kiniry and David R.~Cok },
  title =    { {ESC/Java2}: Uniting {ESC/Java} and {JML}: Progress and
                  issues in building and using {ESC/Java2} and a report
                  on a case study involving the use of {ESC/Java2} to
                  verify portions of an Internet voting tally system },
  booktitle = {Construction and Analysis of Safe,
               Secure and Interoperable Smart devices (CASSIS) },
  year =     2004,
  series =   lncs,
  note      = {To appear},
  publisher = pub-sv
}


@misc{ barnett-spec,
  author = "Mike Barnett and K. Rustan M. Leino and Wolfram Schulte",
  title = "The Spec\# Programming System: An Overview",
  url = "http://citeseer.ist.psu.edu/649115.html" }

@string          {ACM = "ACM Press"}
@string          {LNCS = "Lecture Notes in Computer Science"}
@string          {TOPLAS = "ACM Transactions on Programming Languages and Systems"}
@string          {ch= "Chapman and Hall"}
@string          {elsevier = "Elsevier"}
@string          {jic = "Information and Computation"}
@string          {jlap = "Journal of Logic and Algebraic Programming"}
@string          {prc = "Proceedings of "}
@string          {proc = "Proceedings of the "}
@string          {sv = "Springer-Verlag"}
@string          {tcs = "Theoretical Computer Science"}



@inproceedings   {FournetGonthier96,
author       =   {C\'{e}dric Fournet and
                  Georges Gonthier},
title        =   {The Reflexive Chemical Abstract Machine
                  and the Join-Calculus},
crossref     =   "popl96",
pages        =   "372--385",
abstract = "By adding reflexion to the chemical machine of Berry and
  Boudol, we obtain a formal model of concurrency that is consistent
  with mobility and distribution. Our model provides the foundations
  of a programming language with functional and object-oriented
  features. It can also be seen as a process calculus, the join
  calculus, which we prove equivalent to the pi calculus of Milner,
  Parrow, and Walker.",
filename = "reflexive-cham-join-calculus.ps"
}


@proceedings     {popl96
, key          =   "POPL'96"
, title        =   "Conference record of the 23th ACM SIGPLAN-SIGACT
                  Symposium on Principles of Programming Languages
                  (POPL'96)"
, booktitle        =   "Conference record of the 23th ACM SIGPLAN-SIGACT
                  Symposium on Principles of Programming Languages
                  (POPL'96)"
, organization =   "ACM"
, month        =   jan
, year         =   1996
, crossrefonly =   1
}


@inproceedings{lattner04:llvm,
 author = {Chris Lattner and Vikram Adve},
 title = {LLVM: A Compilation Framework for Lifelong Program Analysis \& Transformation},
 booktitle = {CGO '04: Proceedings of the international symposium on Code generation and optimization},
 year = {2004},
 isbn = {0-7695-2102-9},
 pages = {75},
 location = {Palo Alto, California},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
 }

@unpublished{moors07:tcpoly,
  author = {Adriaan Moors and Frank Piessens and Martin Odersky},
  title = {Towards Equal Rights for Higher-Kinded Types},
  note = {Accepted for the 6th International Workshop on Multiparadigm Programming with Object-Oriented Languages at the European Conference on Object-Oriented Programming (ECOOP)},
  year = 2007,
}

@unpublished{Altherr07:fgjomega,
  author = {Philippe Altherr and Vincent Cremet},
  title = {Adding Type Constructor Parameterization to {J}ava},
  note = {Accepted to the workshop on Formal Techniques for {J}ava-like Programs (FTfJP'07) at the European Conference on Object-Oriented Programming (ECOOP)},
  year = 2007,
}

@misc{odersky06:pmtc,
	AUTHOR = {Martin Odersky},
	TITLE = {Poor man's type classes},
	YEAR = {2006},
	MONTH = {July},
	NOTE = {Talk at IFIP WG 2.8, Boston}	
}

@inproceedings{JavaGI,
 author = "Stefan Wehr and Ralf L{\"a}mmel and Peter Thiemann",
 title = "{JavaGI}: Generalized Interfaces for {J}ava",
 year = 2007,
 month = jul,
 note = {25 pages; To appear},
 booktitle = "ECOOP 2007, Proceedings",
 series = "LNCS",
 publisher = "Springer-Verlag"
}


@unpublished{moors07:cftintro,
  author = {Adriaan Moors},
  title = {Code-follows-Type Programming in {Scala}},
  year = 2007,
  note = {Manuscript available from \url{http://www.cs.kuleuven.be/~adriaan/?q=cft_intro}}
}

@TECHREPORT{moors07:sparsec,
author      = {Adriaan Moors and Frank Piessens and Martin Odersky},
title       = {Parser Combinators in {S}cala },
institution = {Department of Computer Science, K.U. Leuven},
number      = {CW491},
note        = {Under preparation. \url{http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW491.abs.html}},
year        = 2007
}

@TECHREPORT{LeijenMeijer:parsec,
author      = {Daan Leijen and Erik Meijer},
title       = {Parsec: Direct Style Monadic Parser Combinators for the Real World},
institution = {Department of Computer Science, Universiteit Utrecht},
number      = {UU-CS-2001-27},
year        = 2001
}

@techreport{Hutton96:monpars,
        author = "Graham Hutton and Erik Meijer",
        title = "{Monadic Parser Combinators}",
        institution = "Department of Computer Science,
                        University of Nottingham",
        type = "Technical Report",
        number = "NOTTCS-TR-96-4",
        year = 1996}
        
@unpublished{syme07:fsharp,
  author = {Don {Syme, et al.}},
  title = {The {F}\# Programming Language Informal Specification},
  year = {2007},
  note = {\url{http://research.microsoft.com/fsharp/manual/lexyacc.aspx}}
}        

@misc{rossberg01:hopoly,
  author = "Andreas Rossberg",
  title = {Re: Question on typing},
  year = 2001,
  note = {Answer on caml-list \url{http://article.gmane.org/gmane.comp.lang.caml.inria/9924}}
}

% http://article.gmane.org/gmane.comp.lang.caml.inria/34513

@inproceedings{meijer07:confessions,
 author = {Erik Meijer},
 title = {Confessions of a Used Programming Language Salesman\\
Getting the Masses Hooked on {H}askell},
 booktitle = {OOPSLA 2007: Proceedings of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications},
 year = {2007},
 isbn = {1-59593-786-5},
 location = {Montréal, Québec, Canada},
 doi = {},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }
 
@article{1314923,
 author = {Gilad Bracha},
 title = {Executable Grammars in Newspeak},
 journal = {Electron. Notes Theor. Comput. Sci.},
 volume = {193},
 year = {2007},
 issn = {1571-0661},
 pages = {3--18},
 doi = {http://dx.doi.org/10.1016/j.entcs.2007.10.004},
 publisher = {Elsevier Science Publishers B. V.},
 address = {Amsterdam, The Netherlands, The Netherlands},
 }
 
 
@InProceedings{moors08:scalina,
  author = 	 {Adriaan Moors and Frank Piessens and Martin Odersky},
  title = 	 {Safe Type-level Abstraction in {S}cala},
  booktitle =	 {Proc. FOOL '08},
  year =	 2008,
  month =	 jan,
  note =	 {\url{http://fool08.kuis.kyoto-u.ac.jp/}}
}

@BOOK{Gamma1995,
  AUTHOR = {Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides},
  TITLE = {Design Patterns: Elements of Reusable Object-Oriented Software},
  YEAR = 1995,
  PUBLISHER = {{ Addison-Wesley} Publishing Company},
  SERIES = {{ Addison-Wesley} Professional Computing Series},
  ADDRESS = {New York, NY}
} 


@Manual{odersky:scala-reference,
  title =        {The {S}cala {L}anguage {S}pecification, Version 2.6},
  author =       {Martin Odersky},
  organization = {EPFL},
  month =        nov,
  year =         2007,
  note =         {\url{http://www.scala-lang.org/docu/files/ScalaReference.pdf}}
}

@techreport{hughes99:restricted,
  author = {John Hughes},
  title = {Restricted Datatypes in {H}askell},
  crossref  = {UUCS199928},
  year = "1999"}
  
  
@TECHREPORT{UUCS199928,
author = {H. J. M. Meijer},
year = 1999,
title = {Proceedings of the 1999 Haskell Workshop},
number = {UU-CS-1999-28},
institution = {Department of Information and Computing Sciences, Utrecht University},
urlps = {{http://www.cs.uu.nl/research/techreps/repo/CS-1999/1999-28.ps.gz}},
urlpdf = {{http://www.cs.uu.nl/research/techreps/repo/CS-1999/1999-28.pdf}},
pubcat = {techreport}
}  

@misc{chak07:classfamilies,
  author = {Manuel Chakravarty and Simon L. Peyton Jones and Martin Sulzmann and Tom Schrijvers},
  title = {Class Families},
  year = 2007,
  note = {On the GHC Developer wiki, \url{http://hackage.haskell.org/trac/ghc/wiki/TypeFunctions/ClassFamilies}}
}



@inproceedings{meijer07:linq20,
 author = {Erik Meijer},
 title = {{LINQ} 2.0: Democratizing the Web},
 booktitle = {XTech},
 year = {2007},
 location = {Paris. France},
 }
 
@misc{ostermann07:privcomm,
  author = {Klaus Ostermann and Christian Hofer},
  year = {2007},
  note = {Private communication}
}

@PhdThesis{ernst99b,
    author =     {Erik Ernst},
    title =      {gbeta  -- a Language with Virtual Attributes, Block 
                  Structure, and Propagating, Dynamic Inheritance}, 
    school =     {Department of Computer Science, University of Aarhus, 
                  \AA{}rhus, Denmark},
    year =       {1999},
}